package case2

import (
	"fmt"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

func Test() {
	fmt.Println("🎯示例二：定义模型并让Gorm为其创建对应的数据表")

	db := mysqlConnect()
	fmt.Println(db)

	// 自动迁移模式，会创建表结构，如果不存在的话。默认：表创建后缀都会带s
	err := db.AutoMigrate(&Dogv2{}) // 创建的表明是 Dogv2s
	if err != nil {
		fmt.Println("创建表结构失败：", err)
		return
	}

	fmt.Println("创建表结构成功...")

}

// 初始化连接
func mysqlConnect() *gorm.DB {
	// 连接字符串
	var url string = "root:123456@tcp(127.0.0.1:3306)/case1?charset=utf8mb4&parseTime=True&loc=Local"
	db, err := gorm.Open(mysql.Open(url), &gorm.Config{})
	if err != nil {
		fmt.Println("连接失败...")
	}
	fmt.Println("连接成功...")
	return db
}

// 定义表结构模型
type Dogv2 struct {
	ID   uint   `gorm:"primarykey"` // uint -> bigint
	Name string `gorm:"type:varchar(20);not null"`
}
